Method and apparatus for detecting a salient point of a protuberant object

ABSTRACT

An image processing method and an apparatus ( 300 ) are provided, the method includes: obtaining a depth image of a protuberant object ( 210 ); selecting a plurality of test points placed on a circle around a pixel in the depth image as a center point of the circle; calculating a protuberance value of the center point based on a comparison between the depth value of the center point and the depth value of each of the selected test points ( 240 ); and determining one or more salient points of the protuberant object by using the protuberance value of each pixel in the depth image ( 250 ).

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a U.S. National Stage Filing under 35 U.S.C. 371 of international Patent Application Serial No. PCT/CN2016/087989, filed Jun. 30, 2016, and published as WO 2018/000366 A1 on Jan. 4, 2018, which application and publication are incorporated herein by reference in their entirety.

BACKGROUND

Humans can quickly and accurately detect visually noticeable foreground object in the scene, known as salient objects, and adaptively focus attention on such perceived important regions. However, this basic intelligent behavior still remains a challenge for computer vision systems when they are asked to identify a salient object in an image. Many approaches to this task have been implemented over the decades.

To date, visual saliency research has mainly investigated color, gradient, and grayscale differences to create saliency models. The saliency models mainly focus on separating or segmenting out a conspicuous object from a background scene, which is commonly known as salient object detection. Such saliency models can be explained by the question of “Where is the salient object in the scene”. The salient object detection usually relies on an assumption about the property of object and background, i.e. high appearance contrast between the object and its surrounding region. The contrast-based saliency extracted by these saliency models is not reliable in case the appearance contrast is not high.

SUMMARY

The following summary is provided to introduce a selection of concepts in a simplified form that are further described below in the detailed description. This summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used to limit the scope of the claimed subject matter.

According to an embodiment of the subject matter described herein, an image processing method comprises: obtaining a depth image of a protuberant object; selecting a plurality of test points placed on a circle around a pixel in the depth image as a center point of the circle; calculating a protuberance value of the center point based on a comparison between the depth value of the center point and the depth value of each of the selected test points; and determining one or more salient points of the protuberant object by using the protuberance value of each pixel in the depth image.

According to an embodiment of the subject matter, an image processing apparatus comprises: an obtaining module configured to obtain a depth image of a protuberant object; a calculating module configured to select a plurality of test points placed on a circle around a pixel in the depth image as a center point of the circle, and calculate a protuberance value of the center point based on a comparison between the depth value of the center point and the depth value of each of the selected test points; and a detecting module configured to detect one or more salient points of the protuberant object by using the protuberance value of each pixel in the depth image.

According to an embodiment of the subject matter, a computer system comprises: one or more processors, and a memory storing computer-executable instructions that, when executed, cause the one or more processors to: obtain a depth image of a protuberant object; select a plurality of test points placed on a circle around a pixel in the depth image as a center point of the circle; calculate a protuberance value of the center point based on a comparison between the depth value of the center point and the depth value of each of the selected test points; and determine one or more salient points of the protuberant object by using the protuberance value of each pixel in the depth image.

In various embodiments of the subject matter, the reliability of the detection is improved since the appearance contrast between the object and its surrounding regions exerts less influence on the detection result.

Further, experiment results show the robustness of the detection against rotation and isometric deformation of a depth region, varying viewpoints of a sensor, and low resolution of a depth image.

In addition, computation cost of the detection can be greatly reduced, thus wide applications such as mobile, vehicle, etc. can be implemented in accordance with the embodiments of the subject matter.

Various aspects and features of the subject matter are described in further detail below. And other objects and advantages of the subject matter will become more apparent and will be easily understood with reference to the description made in combination with the accompanying drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

The features, nature and advantages of the subject matter will be more apparent from the detailed description set forth below when taken in conjunction with the drawings in which use of the same reference number in different figures indicates similar or identical items.

FIG. 1 illustrates a block diagram of an exemplary environment 10 in which embodiments of the subject matter may be utilized;

FIG. 2 illustrates a flowchart of a method for detecting a protuberant object according to one embodiment of the subject matter;

FIG. 3A illustrates a diagram of four pixels being selected as test points along a circle around a center point;

FIG. 3B illustrates a diagram of eight pixels being selected as test points along a circle around a center point;

FIG. 4A and FIG. 5A illustrate depth values of a center point and test points and FIG. 4B and FIG. 5B illustrate comparison results starting from the top test point clockwise respectively, when sharing the same number of zero-crossings;

FIG. 6A and FIG. 7A illustrate depth values of a center point and test points and FIG. 6B and FIG. 7B illustrate comparison results starting from the top test point clockwise respectively, when sharing the same number of positive comparison results;

FIG. 8 illustrates exemplary protuberant bumps on an uneven surface;

FIG. 9 illustrates exemplary protuberance, nearness and geometry energy for a fingertip in different orientation states;

FIG. 10 illustrates a block diagram of an apparatus for detecting a protuberant object according to one embodiment of the subject matter; and

FIG. 11 illustrates a block diagram of a computer system for detecting a protuberant object according to one embodiment of the subject matter.

DETAILED DESCRIPTION

The subject matter will be described with respect to exemplary embodiments and with reference to certain drawings, but the subject matter is not limited thereto. Rather, the intention is to cover all modifications, equivalents and alternatives falling within the spirit and scope of the claimed subject matter. The drawings described are only schematic and are non-limiting. In the drawings, the size of some of the elements may be exaggerated and not drawn on scale for illustrative purposes.

As used herein, the term “a” or “an” is to be read as “at least one”. the term “includes” and its variants are to be read as open terms that mean “includes, but is not limited to”. The term “based on” is to be read as “based at least in part on”. The term “one embodiment” and “an embodiment” are to be read as “at least one embodiment”. The term “another embodiment” is to be read as “at least one other embodiment”. Other definitions, explicit and implicit, may be included below. A definition of a term is consistent throughout the description unless the context clearly indicates otherwise.

FIG. 1 illustrates a block diagram of an exemplary environment 10 which may take advantage of the image processing techniques according to embodiments of the subject matter described herein. It is to be understood that the structure and functionality of the environment 10 are described only for the purpose of illustration without suggesting any limitations as to the scope of the subject matter described herein.

The environment 10 may include a sensor 20, a display 30 and a computing device 40.

The sensor 20 can be used to obtain a depth image. A depth image is composed of pixels, each pixel having a pixel value (i.e. depth value) indicating the distance to a point in a scene from a specific point, the specific point normally being associated with the sensor for sensing depth information. For example, the sensor can be commercially available sensors such as those used in Kinect and Dense Stereo, which are typically low-cost low-resolution sensors. It should be appreciated that any kind of sensor 20 can be employed as long as depth information can be obtained by means of the sensor. Additionally, a RGB cameral, which is not shown in the FIG. 1 for sake of not obscuring the illustration of embodiments of the subject matter, can be deployed to obtain the RGB images.

In a scenario, a user may interact with an application (e.g. a game, an operating window, or the like) displayed on the display 30 over the air through e.g. fingertip pointing or writing, or hand acting, or the like. The computing device 40 may detect the fingertip consistently and track the fingertip pointing or writing by taking advantage of image process technique according to embodiments of the subject matter. In another scenario, the computing device 40 may detect a hand and track the hand acting by taking advantage of image process technique according to embodiments of the subject matter. It should be appreciated that an object that can be detected according to embodiments of the subject matter is not limited a fingertip, a finger or a hand.

FIG. 2 is a flowchart of a method for detecting a protuberant object according to one embodiment of the subject matter. The protuberant object herein refers to an object having a protuberant shape. The protuberant shape can be, e.g. a fingertip of a hand, a gunpoint, a tip of a stick, and so on.

In block 210, a depth image of a protuberant object can be obtained. For example the depth image can be obtained by using three-dimensional (3D) sensing technologies, e.g. through the sensor 20. In a scenario, depth images can be obtained while the sensor 20 captures the depth images in real time. In another scenario, depth images can be obtained from a storage device in which the depth images are pre-stored or buffered.

The obtained depth image may be a whole depth image, and may also be a Region Of Interest (ROI) of the whole image, that is, a partial depth image. We may collectively refer to the whole or partial depth image as a depth image for sake of simplification. The ROI can be set by using any approach as long as the region containing the interesting object (e.g. a hand) is elected.

A pixel in the depth image can be selected as a center point of a circle. The radius r(d_(c)) of the circle can be determined based at least in part on the depth value d_(c) of the center point, as shown in block 220. The smaller the depth value d_(c) of the center point is, the larger the radius r(d_(c)) is. In one embodiment, the radius r(d_(c)) can be decided by a predetermined function as a sum of exponentials shown in Equation (1).

$\begin{matrix} {{r\left( p_{C} \right)} = {\eta\left( {{Ae^{Cd_{c}}} + {Be^{Dd_{c}}}} \right)}} & (1) \end{matrix}$

where

d_(c) denotes the depth value of the center pixel,

r(d_(c)) denotes the radius of the circle,

η, A, B, C, D are coefficients.

In an embodiment, the coefficients can be predetermined statistically, for example, in a specific implementation η=0.05, A=242, B=0.6499, C=−0.00079, D=0.0011. It should be appreciated the coefficients η, A, B, C, D are not limited to any specific values. Values of the coefficients that can adapt the radius of the circle according to the relative size of a local area related to the center point can be applicable to the embodiments. For example, the radius of the circle can be in inverse proportion to the depth value of the center point. The larger the depth value of the center point is, the smaller the relative size of the local area related to the center point is.

As shown in block 230, a number of test points can be selected along the circle around the center point. It should be appreciated that the number of test points is not limited to any specific number. In one embodiment, the depth image may include sixty-four pixels as shown in FIGS. 3A and 3B. It should be appreciated that embodiments of the subject matter are not limited to the specific number of pixels in a depth image, and any number of pixels in a depth image is applicable. Examples of selecting test points are illustrated in FIGS. 3A and 3B.

In an embodiment, as shown in FIG. 3A, four pixels along the circle around the center point are selected as test points. Each of the test points placed on the circle may have a depth value d_(i) (i=0, 1, 2, 3). If the sensor used to produce the depth image is properly calibrated, the depth values can be given directly in physical units, such as meters. And each of the depth values can be represented by binary bits (e.g. eight binary bits) in the signal processing.

In another embodiment, as shown in FIG. 3B, eight pixels along the circle around the center point are selected as test points. Each of the test points placed on the circle may have a depth value d_(i) (i=0, 1, 2, . . . , 7). If the sensor used to produce the depth image is properly calibrated, the depth values can be given directly in physical units, such as meters.

In another embodiment, if a test point is not at the center of a pixel, for example, some points among the eight test points along the circle around the center point are not at the center of the corresponding pixels, the depth value of the corresponding pixel may not be accurate to reflect the depth value of such a test point. In this case, the depth value of such a test point can be obtained by an interpolation of depth values of neighboring pixels. For example, the depth value of such a test point can be obtained by a bilinear interpolation of depth values of its two neighboring pixels or four neighboring pixels.

Referring back to FIG. 2, in block 240, a protuberance value f_(c) of the center point is calculated based on a comparison between the depth value (d_(c)) of the center point and the depth value (d₀, d₁, . . . d₇) of each of the selected eight test points in one embodiment. A positive comparison result h_(i) is generated if the depth value d_(i) of one test point is larger than the depth value d_(c) of the center point, i.e. Δd=di−dc>0. The number of the positive comparison results associated with the selected eight test points is counted (i.e. accumulated) as P_(c) as shown in Equation (2) to (4).

$\begin{matrix} {h_{i} = {\delta\left( {d_{i} - d_{c}} \right)}} & (2) \\ {{\delta\left( {\Delta\; d} \right)} = \begin{Bmatrix} 1 & {{{if}\mspace{14mu}\Delta\; d} > 0} \\ 0 & {otherwise} \end{Bmatrix}} & (3) \\ {p_{c} = {\sum\limits_{i = 0}^{n - 1}h_{i}}} & (4) \end{matrix}$

where n is the number of the selected test points.

The protuberance value f_(c) of the center point is a function of the number of the positive comparison results P_(c). The larger the number of positive comparison results P_(c) is the larger the protuberance value f_(c) of the center point is. The protuberance value f_(c) describes how much a depth region (e.g. the center point) stands out from its surroundings, so that it can indicates the degree of protuberance of an object from surroundings.

In a further embodiment, the number of zero-crossings can be provided as an indication of degree of protuberance of an object. The depth value d_(c) of the center point is subtracted from the depth value d_(i) of each of the selected eight test points. If the signs of the subtracted results associated with one test point and its next neighboring test point flip, a zero crossing s_(i) is generated. The number of zero-crossings associated with the selected eight test points is counted as z_(c) as shown in Equation (5) to (7).

$\begin{matrix} {s_{i} = {\varphi(i)}} & (5) \\ {{\varphi(i)} = \left\{ \begin{matrix} 1 & \begin{matrix} {{{if}\mspace{14mu}{the}\mspace{14mu}{sign}\mspace{14mu}{of}\mspace{14mu}\left( {d_{{re}\;{m{({i,n})}}} - d_{c}} \right)} \neq} \\ {{{the}\mspace{14mu}{sign}\mspace{14mu}{of}\mspace{14mu}\left( {d_{{re}\; m\;{({{i + 1},n})}} - d_{c}} \right)\mspace{14mu} 0} \leq i \leq {n - 1}} \end{matrix} \\ 0 & {otherwise} \end{matrix} \right.} & (6) \\ {z_{c} = {\sum\limits_{i = 0}^{n - 1}s_{i}}} & (7) \end{matrix}$

where

rem(i, j) is the remainder left over after dividing i by j;

n is the number of test points, and in this example n is eight.

The protuberance value f_(c) can be a function of the number of the zero-crossings z_(c). The smaller the number of zero-crossings z_(c) is the larger the protuberance value f_(c) of the center point is.

In a further embodiment, the protuberance value f_(c) can be a function of both the number of the positive comparison results P_(c) and the number of the zero-crossings z_(c).

$\begin{matrix} {f_{c} = \left\{ \begin{matrix} \frac{p_{c}}{2^{{z_{c}/2} - 1}} & {{{if}\mspace{14mu} 0} < z_{c} \leq {n - 1}} \\ p_{c} & {{{if}\mspace{14mu} z_{c}} = 0} \end{matrix} \right.} & (8) \end{matrix}$

The protuberance value f_(c) as shown in equation (8) describes how uplifted a depth region (e.g. the center point) is from the surroundings, so that it may represent the degree of protuberant saliency of the depth region (e.g. the center point) from its surroundings. With both parameters, i.e. the positive comparison results P_(c) and the number of the zero-crossings z_(c), a more confident level of the protuberance value f_(c) is provided to indicate the degree of protuberance of the center point.

FIG. 4A and FIG. 5A illustrate the depth value d_(c) of the center point and the depth values of the test points. FIG. 4B and FIG. 5B illustrate the comparison results starting from the top test point clockwise respectively. It shows that, when sharing the same number of zero-crossings (e.g. two zero-crossings shown in FIG. 4B and FIG. 5B), the larger the number of positive comparison results is the larger the protuberance value of the center point is.

FIG. 6A and FIG. 7A illustrate the depth value d_(c) of the center point and the depth values of the test points. FIG. 6B and FIG. 7B illustrate the comparison results starting from the top test point clockwise respectively. It shows that, when sharing the same number of positive comparison results (e.g. five positive comparison results shown in FIG. 6B and FIG. 7B), the smaller the number of zero-crossings is the larger the protuberance value of the center point is.

Referring back to FIG. 2, in block 250, each pixel in the depth image (e.g. each pixel among the sixty-four pixels in the embodiment shown in FIG. 3B) is taken as the center point to calculate the protuberance value f_(c) based on a comparison between the depth value (d_(c)) of the center point and the depth value (d₀, d₁, . . . d₇) of each of the selected eight test points. That is, each pixel in the depth image will be mapped into a protuberance value in a protuberant saliency map. One or more salient points of the protuberant object, e.g. a fingertip of a hand or a finger, can be determined based on the protuberance values in the protuberant saliency map. In other words, such protuberant saliency map may highlight one or more protuberant bumps on an uneven surface as illustrated in one embodiment shown in FIG. 8. By calculating the protuberance value of each pixel in the depth image, one or more salient points of the protuberant object can be determined. The salient point detection of a protuberant object has practical applications. For example, fingertip detection is an important technology for Natural User Interface (NUI).

In a further embodiment, in block 260, the protuberance value (e.g. f_(i),) of a pixel in the protuberant saliency map can be balanced by a corresponding depth value of the pixel (e.g. d_(i), the depth value of pixel i in the depth image). In particular, the balance may comprise: the protuberance value (e.g. f_(i)) is multiplied by a normalized depth value g_(i), where g_(i)=n (255−d_(i)), n(·) is a normalization function to set the depth range between 0 and 255, 0<d_(i)<255.

In an example, the normalized depth value g_(i) may be calculated by reversing and stretching the depth value d_(i) though the following equation (9) and (10)

$\begin{matrix} {g_{i} = {{{n\left( {255 - d_{i}} \right)}\mspace{14mu}{where}\mspace{14mu} 0} < d_{i} \leq 255}} & (9) \\ {{n(d)} = \left\{ \begin{matrix} {\frac{255}{255 - d_{th}}\left( {d - d_{th}} \right)} & {d > d_{th}} \\ 0 & {otherwise} \end{matrix} \right.} & (10) \end{matrix}$

where

d_(i) denotes the depth value of the pixel i,

g_(i) denotes the normalized depth value of the pixel i,

d_(th) denotes a threshold for the stretching operation.

In an example, the d_(th) may be selected as 204, which enables a stretching of 5 multiplications. It should be appreciated the d_(th) is not limited to a certain value.

In the example where a depth value is normalized to 0 to 255, the value 255 represents the maximum depth value of a pixel in the depth image. It should be appreciated that the maximum depth value d_(max) is not limited to 255 and may be other value depending on the normalization range of the depth value.

A protuberant saliency map can be represented as protuberance term F_(c) which consists of a plurality of protuberance values f_(i) (index c in F_(c) represents that pixel i in the depth image is regarded as the center point of a circle to calculate the protuberance value f_(i)). Each depth value of pixel i in the depth image can be normalized by function n(·), and all normalized depth values may constitute a nearness map represented as a nearness term G_(c) (index c in G_(c) represents that corresponding pixel i in the depth image is regarded as the center point of a circle to calculate the protuberance value f_(i)). Both protuberance term F_(c) and nearness term G_(c) can be matrixes.

Each protuberance value f_(i) in the protuberance term F_(c) is multiplied by the normalized depth value g_(j) associated with the corresponding pixel in the nearness term G_(c) as in the following equation (11) to obtain a geometry energy E_(c). The geometry energy can provide an enhanced indication of saliency of the protuberance region (e.g. the center point) as it takes both the protuberance and nearness into account.

$\begin{matrix} {E_{c} = {{F_{c} \cdot G_{c}}}} & (11) \end{matrix}$

Based on the above equation to obtain a geometry energy E_(c), a geometry energy map is obtained by calculating the geometry energy value for each pixel in the depth image. FIG. 9 illustrates the protuberance, nearness and geometry energy for a fingertip in different orientation states.

In an example, a point with the maximum geometry energy in the geometry energy map can be recognized as a salient point of a protuberant object such as a fingertip, a gunpoint, a tip of stick or the like.

The geometry energy map can be further used to detect a protuberance object in combination with other approaches. For example, a regression-based approach or a classification-based approach can be applied to the geometry energy values in the geometry energy map (i.e. the balanced protuberance value of each pixel in the depth image). A mapping to a pre-defined set of object features can be determined in the geometry energy map based on pre-trained models by using the regression-based approach or the classification-based approach, and then an object corresponding to the set of object features may be detected in the geometry energy map. For example, the pre-trained models may correspond to mouth, ear and leg of a dog, mouth and fin of a fish, a finger, a hand, and so on. For example, a hand or a hand along with forearm can be detected as the protuberant object. For example, a finger or fingers of the hand can be detected as the protuberant object. Examples of the regression-based approach or classification-based approach may include Random Ferns, Random Decision Forests, Convolutional Neural Network (CNN), Support Vector Machine (SVM), etc.

The method for detecting a protuberant object should not be limited to the blocks mentioned above. It will be apparent to those skilled in the art that the various aspects of the subject matter claimed can be practiced in other examples that depart from these specific details.

As described in the above embodiment, the radius r(d_(c)) of the circle is determined based at least in part on the depth value d_(c) of the center point, shown in block 220.

The test points are placed along the circle symmetrically as shown in FIG. 3A and FIG. 3B. In an alternative embodiment, the test points can be arranged along the circle unsymmetrically.

Although some equations are provided above as examples, a person skilled in the art can understand that these equations can be changed but not depart from the spirit of the subject matter. For example, the number of zero-crossings can be counted in accordance with the following equation (12) instead of above equations (5)-(7).

$\begin{matrix} {z_{c} = {\sum\limits_{i = 0}^{n - 1}{{h_{r\;{{em}{({i,n})}}} - h_{r\;{{em}{({{i + 1},n})}}}}}}} & (12) \end{matrix}$

Where the definition of h refers to equation 2 and equation 3 as described in the above embodiment; n is the number of test points; rem(i, j) is the remainder left over after dividing i by j.

Further, as described in the above embodiments, the protuberance value f_(c) of the center point is calculated based on a comparison between the depth value (d_(c)) of the center point and the depth value (d₀, d₁, . . . d₇) of each of the selected eight test points. Those skilled in the art will appreciate that although the test points related to a center point are selected based on one radius value, the subject matter is not so limited. In an embodiment, the protuberance value f_(c) can be calculated with a coarse-to-fine strategy to alleviate the effect of depth noise. Multiple radii may be used with respect to a center point based on the coarse-to-fine strategy. For example, after a radius of 5 pixel-length is determined by using equation (1), two additional radii of 6 pixel-length and 7 pixel-length, which are obtained by incrementing the radius, can be used to select the test points and calculate the corresponding protuberance value f_(c) of the center point. It should be appreciated that the number of radii is not limited to a certain number such as 3, and the incrementing amount is not limited to a certain value such as 1. In one embodiment, the three radii may be used to obtain three protuberance values of a center point, and among the three calculated protuberance values, the protuberance value with the highest appearance frequency (i.e. how many times a value appears) can be eventually voted as the protuberance value of the center point. In another embodiment, the three calculated protuberance values can be averaged as the protuberance value of the center point.

A person skilled in the art can understand that the above methods for detecting a protuberant object can be used to detect fingertip(s) or finger(s) of one human's hand, it is possible to detect fingertips or fingers of human's both hands (e.g. both hands can be identified as two objects). The above method can even be applied to detect fingertips or fingers of different human's hands, e.g. different hands are recognized as different objects.

It should be understood that the elements described in the above blocks may be implemented in various forms of hardware, software or combinations thereof.

An exemplary apparatus 300 for detecting a protuberant object is shown in FIG. 10. The apparatus 300 may include an obtaining module 310, a calculating module 320 and a detecting module 330. The apparatus 300 may be an embodiment of the computing device 40 of FIG. 1 or may be implemented in the computing device 40.

The obtaining module 310 may obtain a depth image of a protuberant object. In a scenario, the obtaining module 310 may obtain depth images while the sensor 20 captures the depth images in real time. In another scenario, the obtaining module 310 may obtain depth images stored in a storage device. The calculating module 320 may calculate the protuberance value and/or the geometry energy value of each pixel of the depth image. In an embodiment, the calculating module 320 may calculate the protuberance value of each pixel of the depth image through the operations as described with reference to at least one of blocks 220, 230 and 240 of FIG. 2. In another embodiment, the calculating module 320 may calculate the geometry energy value of each pixel of the depth image through the operations as described with reference to at least one of blocks 220, 230 240, and 260 of FIG. 2. The detecting module 330 may detect one or more salient points of the protuberant object by using the protuberance value or the geometry energy value of each pixel in the depth image. In an embodiment, the detecting module 330 may choose one or more points with the maximum protuberance value(s) or with the maximum geometry energy value(s) as the one or more salient points. In another embodiment, the detecting module 330 may detect the protuberance object based on the protuberance values or the geometry energy values of each pixel of the depth image (e.g. the protuberant saliency map or the geometry energy map) in combination with other approaches such as the regression-based approach or the classification-based approach as described above. It should be appreciated that the obtaining module 310, the calculating module 320 and the detecting module 330 may perform the respective operations or functions as described in various embodiments of the subject matter.

The obtaining module 310, the calculating module 320 and the detecting module 330 may be implemented in various forms of hardware, software or combinations thereof. In an embodiment, the modules may be implemented separately or as a whole by one or more hardware logic components. For example, and without limitation, illustrative types of hardware logic components that can be used include Field-programmable Gate Arrays (FPGAs), Application-specific Integrated Circuits (ASICs), Application-specific Standard Products (ASSPs), System-on-a-chip systems (SOCs), Complex Programmable Logic Devices (CPLDs), etc. In another embodiment, the modules may be implemented by one or more software modules, which may be executed by a general central processing unit (CPU), a graphic processing unit (GPU), a Digital Signal Processor (DSP), etc.

An exemplary computer system 400 for detecting a protuberant object is shown in FIG. 11. According to one embodiment, a general-purpose computing system may serve as an operator controller. The controller may include one or more processors 410 that execute one or more computer readable instructions (i.e. the elements in above blocks implemented in the form of the software) stored or encoded in computer readable storage medium (i.e. memory) 420 local or remote to the computing system. Software resident on the controller allows the operator to control operation of the system. The apparatus may also include an output device 430 such as display and an input device 440 such as a keyboard, mouse, touch screen, etc.

According to an embodiment, a program product such as a machine-readable medium is provided. The machine-readable medium may have instructions (i.e. the elements in above blocks implemented in the form of the software) thereon which, when executed by a machine, cause the machine to perform the method according to various embodiments of the subject matter.

According to techniques described herein, the protuberance value of the center point is calculated based on a comparison between the depth value (d_(c)) of the center point and the depth value (d₀, d₁, . . . d₇) of each of the selected eight test points. That is, the protuberant saliency is obtained only based on the depth image. Since the depth image is robust to illumination variation, the detection method according to the subject matter does not depend upon the appearance contrast between the object and its surrounding region. The reliability of the detection method and apparatus is improved accordingly.

Further, by virtue of the advantage of the depth image which unambiguously encodes the surface metric dimensions of the protuberant object, the test points placed on a circle around the center point and the algorithm based on a comparison between the depth value of the center point and the depth value of each of the test points, the detection method and apparatus according to the subject matter present good performance under the condition of large rotation and isometric deformation, the varying view point of a sensor, as well as the low resolution depth information.

Since the protuberant saliency is determined by using only a single channel (i.e. protuberance values in the protuberant saliency map), compared with other methods in the prior art which use different channels such as R(Red) color channel, G (Green) color channel, B (Blue color channel) and D (Depth) channel, the detection method and apparatus according to the subject matter enable fast computation.

With a wide horizon of development of salient object detection, the detection method and apparatus according to the subject matter will have wide applications in many fields such as object recognition, resize of image and image retrieval.

It should be noted that the above-mentioned solutions illustrate rather than limit the subject matter and that those skilled in the art would be able to design alternative solutions without departing from the scope of the appended claims. In the claims, any reference signs placed between parentheses shall not be construed as limiting the claim. The word “comprising” does not exclude the presence of elements or steps not listed in a claim or in the description. The word “a” or “an” preceding an element does not exclude the presence of a plurality of such elements. In the system claims enumerating several units, several of these units can be embodied by one and the same item of software and/or hardware. The usage of the words first, second and third, et cetera, does not indicate any ordering. These words are to be interpreted as names. 

The invention claimed is:
 1. An image processing method, comprising: obtaining a depth image of a protuberant object; selecting a plurality of test points placed on a circle around a pixel in the depth image as a center point of the circle; calculating a protuberance value of the center point based on a comparison between the depth value of the center point and the depth value of each of the selected test points, wherein a coarse-to-fine strategy with two or more radii is applied to calculate the protuberance value of the center point; and determining one or more salient points of the protuberant object by using the protuberance value of each pixel in the depth image.
 2. The method of claim 1, wherein a radius of the circle is determined based at least in part on the depth value of the center point.
 3. The method of claim 1, wherein the test points are symmetrically placed on the circle.
 4. The method of claim 1, the calculating comprising: counting a number of positive comparison results associated with the selected test points, wherein a positive comparison result is generated if the depth value of one test point is larger than the depth value of the center point, wherein the larger the number of positive comparison results is the larger the protuberance value of the center point is.
 5. The method of claim 4, the calculating further comprising: subtracting the depth value of the center point from the depth value of each of the selected test points; and counting a number of zero-crossings associated with the selected test points, wherein a zero crossing is generated if a sign of a subtracted result associated with one test point is different from a sign of a subtracted result associated with its neighboring test point, wherein the smaller the number of zero-crossings is the larger the protuberance value of the center point is.
 6. The method of claim 1, wherein the coarse-to-fine strategy comprises voting the calculated protuberance value with a highest appearance frequency is voted as the protuberance value of the center point.
 7. The method of claim 1, wherein the coarse-to-fine strategy comprises voting the calculated protuberance values are averaged as the protuberance value of the center point.
 8. The method of claim 1, further comprising: balancing the protuberance value of each pixel in the depth image with a corresponding depth value of the pixel.
 9. The method of claim 8, the balancing comprising: normalizing the depth value of the center point; and multiplying the protuberance value of the center point with the normalized depth value of the center point.
 10. The method of claim 8, further comprising: applying a regression-based approach or a classification-based approach to the balanced protuberance value of each pixel in the depth image.
 11. The method of claim 10, wherein the regression-based approach or classification-based approach comprises one of the following approaches: Random Ferns, Random Decision Forests, Convolutional Neural Network (CNN), Support Vector Machine (SVM).
 12. An image processing apparatus, comprising: at least one processor; and memory including instructions that, when executed by the at least one processor, cause the at least one processor to perform operations to: obtain a depth image of a protuberant object; select a plurality of test points placed on a circle around a pixel in the depth image as a center point of the circle, and calculate a protuberance value of the center point based on a comparison between the depth value of the center point and the depth value of each of the selected test points, wherein a coarse-to-fine strategy with two or more radii is applied to calculate the protuberance value of the center point; and detect one or more salient points of the protuberant object by using the protuberance value of each pixel in the depth image.
 13. The apparatus of claim 12, the memory further comprising instructions that cause the at least one processor to determine a radius of the circle based at least in part on the depth value of the center point.
 14. The apparatus of claim 12, the memory further comprising instructions that cause the at least one processor to count a number of positive comparison results associated with the selected test points, wherein a positive comparison result is generated if the depth value of one test point is larger than the depth value of the center point, wherein the larger the number of positive comparison results is the larger the protuberance value of the center point is.
 15. The apparatus of claim 14, the memory further comprising instructions that cause the at least one processor to: subtract the depth value of the center point from the depth value of each of the selected test points; and count a number of zero-crossings associated with the selected test points, wherein a zero crossing is generated if a sign of a subtracted result associated with one test point is different from a sign of a subtracted result associated with its neighboring test point, wherein the smaller the number of zero-crossings is the larger the protuberance value of the center point is.
 16. The apparatus of claim 12, the memory further comprising instructions that cause the at least one processor to balance the protuberance value of each pixel in the depth image with a corresponding depth value of the pixel.
 17. The apparatus of claim 16, the instructions to perform the balancing further comprising instructions that cause the at least one processor to: normalize the depth value of the center point; and multiply the protuberance value of the center point with the normalized depth value of the center point.
 18. The apparatus of claim 16, the memory further comprising instructions that cause the at least one processor to apply a regression-based approach or a classification-based approach to the balanced protuberance value of each pixel in the depth image.
 19. A computer system, comprising: one or more processors; and a memory storing computer-executable instructions that, when executed, cause the one or more processors to: obtain a depth image of a protuberant object; select a plurality of test points placed on a circle around a pixel in the depth image as a center point of the circle; calculate a protuberance value of the center point based on a comparison between the depth value of the center point and the depth value of each of the selected test points, wherein a coarse-to-fine strategy with two or more radii is applied to calculate the protuberance value of the center point; and determine one or more salient points of the protuberant object by using the protuberance value of each pixel in the depth image. 